#pragma once

/*
noncopyable被继承后，派生类对象可以正常构造和析构，但是派生类对象拷贝构造和赋值构造时，首先调用父类对应的构造，这些构造都被删除了
*/
class noncopyable{
public:
    noncopyable(const noncopyable&) = delete;
    noncopyable& operator=(const noncopyable&) = delete;
protected:
    noncopyable() = default;
    ~noncopyable() = default;
};